import {specslist,specscount} from '../../../request/api'



const state = {
    specsList: [],   //获取数据列表
    count: 0,       //总页码
    pageNum: 1,      //页码数
    pageSize: 3,     // 查询条数
}

const mutations = {
    //修改 spect 的值
    LIST(state,payload){
        state.specsList = payload
    },

    // 修改 总页码
    COUNT(state,payload){
        state.count = payload
    },

    // 修改 页码
    NUM(state,payload){
        state.pageNum = payload
    }
}

const actions = {
    // 总数据 
    // context ： 上下文对象   里面有 commit ，和 dispatch
    getSpectAction(context){
        // 调取接口
        specslist({
            size:context.state.pageSize,
            page:context.state.pageNum
        }).then(res=>{
            // console.log(res,'调取的接口数据');

             // 判断是否有数据
             let list = res.list ? res.list:[]
             // 解决bug  剔除是第一页的情况下， 并且是最后一条数据，就让他的 数据重新调用
             if(context.state.pageNum!=1 && list.length == 0){
                 context.dispatch('changePageAction',context.state.pageNum-1)
             }
             context.commit('LIST',res.list)
        })
    },

    // 获取总条数
    getCountAction({commit}){
        specscount().then(res=>{
            // console.log(res,'总页码');
            commit('COUNT',res.list[0].total)
        })
    },

    // 重新触发列表的事件
    changePageAction(context,payload){
        context.commit('NUM',payload)

        context.dispatch('getSpectAction')
    }

}


const getters = {
    // 总数据
    getspecs(state){
        return state.specsList
    },

    // 总条数
    getcount(state){
        return state.count
    },


    // 查询条数
    getsize(state){
        return state.pageSize
    }

}


export default {
    state, mutations, actions, getters, namespaced: true
}




